﻿////10.1 题⽬描述：
////某地发⽣了⼀件盗窃案，警察通过排查确定盗窃者必为4个嫌疑⼈的⼀个。
////以下为4个嫌疑⼈的供词 :
////A说：不是我。
////B说：是C。
////C说：是D。
////D说：C在胡说
////已知3个⼈说了真话，1个⼈说的是假话。
////现在请根据这些信息，写⼀个程序来确定到底谁是盗窃者。
////10.2 解法思路：
////真正的盗窃者只有⼀个，因此我们可以假设其中⼀⼈为盗窃者，通过对每个嫌疑⼈的供词进⾏分析，
////逐⼀排除嫌疑⼈。
////• 如果A说真话，则盗窃者不是A；如果A说假话，则盗窃者是A。
////• 如果B说真话，则盗窃者是C；如果B说假话，则盗窃者不是C。
////• 如果C说真话，则盗窃者是D；如果C说假话，则盗窃者不是D。
////• 如果D说真话，则C在胡说，即C说假话，盗窃者不是D；如果D说假话，则盗窃者不是C。
////10.3 解法代码：
//    草稿，有了基本框架，但是不完整
//#include<stdio.h>
//int main()
//{
//	int thieves = 0;
//	//分别假设盗窃者是a,b,c,d,看谁是盗窃者时满⾜3个⼈说了真话，⼀个⼈说了假话
//	for (thieves = 'a'; thieves <= 'd'; thieves++)
//	{
//		//判断当前嫌疑⼈作为盗窃者是否成⽴
//
//		printf("盗窃者是：%c", thieves);
//	}
//	return 0;
//}

//             感谢秘塔AI 
//#include<stdio.h>
//
//int main()
//{
//    int thief; //小偷是谁？（'a','b','c','d'）
//
//    for (thief = 'a'; thief <= 'd'; thief++)
//    {
//        // A的供词："不是我" → A不是小偷时为真（thief != 'a'）
//        int truth_A = (thief != 'a');
//
//        // B的供词："是C" → C是小偷时为真（thief == 'c'）
//        int truth_B = (thief == 'c');
//
//        // C的供词："是D" → D是小偷时为真（thief == 'd'）
//        int truth_C = (thief == 'd');
//
//        // D的供词："C在胡说" → C的供词为假时（truth_C=0）为真
//        int truth_D = !truth_C;
//
//        //统计有多少人说真话（truth_A + truth_B + truth_C + truth_D）
//        int truth_count = truth_A + truth_B + truth_C + truth_D;
//
//        //如果刚好3人说真话，说明当前假设成立！
//        if (truth_count == 3)
//        {
//            printf("真正的盗窃者是：%c\n", thief);
//            break; //找到答案后退出循环
//        }
//    }
//
//    return 0;
//}
//
//   比较繁琐的方式

//#include <stdio.h>
//int main()
//{
//	int thief;
//	for (thief = 'a';thief <= 'd';thief++)
//	{
//		int truth_A = (thief != 'a');
//
//		int truth_B = (thief == 'c');
//
//		int truth_C = (thief == 'd');
//
//		int truth_D = !truth_C;
//
//		int truth_count = truth_A + truth_B + truth_C + truth_D;
//
//		if (truth_count == 3)
//		{
//			printf("真正的盗窃者是：%c\n", thief);
//			break;
//		}
//	}
//	return 0;
//
//}


//                            很重要！！！！
//        返回值规则
//关系运算(== , != , <, >)等成立
//返回1(true)，不成立返回0(false)